# from 插件.基础函数.常用函数 import *
from 工程.J10C.UV接收模块.项目公用库.公共函数 import *

    
def 抗混叠滤波器特性测试初始化():
    产品初始化()
    zbb仪器.信号源2.打开接口(True)
    zbb仪器.信号源2.设置AM关()
    zbb仪器.信号源2.设置射频关()

    zbb仪器.频谱仪1.打开接口()
    zbb仪器.频谱仪1.设置清除保持()
    zbb仪器.频谱仪1.设置中心频率(70e6)
    zbb仪器.频谱仪1.设置扫宽(200e3)
    zbb仪器.频谱仪1.设置分析带宽(3e3)
    zbb仪器.频谱仪1.设置视频带宽(200)
    zbb仪器.频谱仪1.设置关闭噪声()
    zbb仪器.频谱仪1.设置频标模式正常()
    zbb仪器.频谱仪1.设置参考幅度(0)

    print("抗混叠滤波器特性测试")
    
def 抗混叠滤波器特性测试(窄带方式=68,频点=395):
    频率 = 频点 * 1000000
    幅度差 = 6
    if 窄带方式==68:
        工作方式='MSK' #需要增加MSK模式
        起点=35   # 起点如何确定？
    elif 窄带方式==5.6:  #这个是宽带模式，有改动
        工作方式='DS'
        起点 = 5  # 起点确定
    elif 窄带方式==38:
        工作方式='AM'
        幅度差=6
        起点 = 15
    else:
        工作方式='AM'


    zbb产品.被测产品.设置工作模式(模式=工作方式)
    zbb产品.被测产品.设置频率控制(频点)

    zbb仪器.信号源2.设置幅度(-105)
    zbb仪器.信号源2.设置频率(频率)
    zbb仪器.信号源2.设置射频开()
    延时(2)
    zbb仪器.频谱仪1.设置打开频标()
    P=[]
    for i in range(5):
        延时(0.2)
        zbb仪器.频谱仪1.设置频标频率(70e6)
        P.append(zbb仪器.频谱仪1.读幅度())
    P1 = min(P)
    print('P1',P1)

    zbb仪器.频谱仪1.设置清除保持()
    ################# 3dB ##################################
    zbb仪器.信号源2.设置幅度(-105 + 幅度差)
    F1, F2 = 0, 0
    zbb仪器.信号源2.设置频率(频率 - 起点 * 1e3)
    # zbb仪器.频谱仪1.设置最大保持()
    延时(1)
    for i in range(起点, 50, 1):
        zbb仪器.信号源2.设置频率(频率 - i * 1e3)
        延时(0.3)
        zbb仪器.频谱仪1.设置频标频率(70e6+i * 1e3)
        PL = zbb仪器.频谱仪1.读幅度()
        print('PL' + str(幅度差), P1, PL, F1)
        if PL < P1:
            F1 = - i
            print('PL' + str(幅度差), P1, PL, F1)
            break

    zbb仪器.信号源2.设置频率(频率+起点*1e3)
    延时(1)
    for i in range(起点, 50, 1):
        zbb仪器.信号源2.设置频率(频率 + i * 1e3)
        延时(0.3)
        zbb仪器.频谱仪1.设置频标频率(70e6 - i * 1e3)
        PR = zbb仪器.频谱仪1.读幅度()
        print('PR' + str(幅度差), P1, PR, F2)
        if PR < P1:
            F2 = i
            print('PR' + str(幅度差), P1, PR, F2)
            break
    窄带3_6dB = F2 - F1

    ################ 60dB ###################################
    幅度差 = 60
    zbb仪器.信号源2.设置频率(频率-int(起点*1.3)*1e3)
    zbb仪器.信号源2.设置幅度(-105 + 60)
    # zbb仪器.频谱仪1.设置最大保持()
    延时(1)
    F1, F2 = 0, 0
    for i in range(int(起点*1.3), 100, 1):
        zbb仪器.信号源2.设置频率(频率 - i * 1e3)
        延时(0.3)
        zbb仪器.频谱仪1.设置频标频率(70e6 + i * 1e3)
        PL = zbb仪器.频谱仪1.读幅度()
        print('PL' + str(幅度差), P1, PL, F1)
        if PL < P1:
            F1 = - i
            print('PL' + str(幅度差), P1, PL, F1)
            break

    zbb仪器.信号源2.设置频率(频率+int(起点*1.3)*1e3)
    延时(1)
    for i in range(int(起点*1.3), 100, 1):
        zbb仪器.信号源2.设置频率(频率 + i * 1e3)
        延时(0.3)
        zbb仪器.频谱仪1.设置频标频率(70e6 - i * 1e3)
        PR = zbb仪器.频谱仪1.读幅度()
        print('PR' + str(幅度差), P1, PR, F2)
        if PR < P1:
            F2 = i
            print('PR' + str(幅度差), P1, PR, F2)
            break
    窄带60dB = F2 - F1

    # 窄带3_6dB = zbb工步.搜索窄带频率(幅度差, 频点, P1)
    # 窄带60dB = zbb工步.搜索窄带频率(60, 频点, P1)


    print('窄带3_6dB,窄带60dB', 窄带3_6dB,窄带60dB)
    zbb仪器.信号源2.设置射频关()
    项目="抗混叠滤波器特性测试('"+str(窄带方式)+"kHz',"+str(频点)+")"

    判断合格保存(项目+'窄带3_6dB', 窄带3_6dB,窄带方式)
    判断合格保存(项目+'窄带60dB', 窄带60dB/窄带3_6dB,1,3)

if __name__=='__main__':
    pass
    抗混叠滤波器特性测试初始化()
    # 抗混叠滤波器特性测试(通道='通道1', 窄带方式=68, 频点=395)
    # 抗混叠滤波器特性测试(通道='通道1', 窄带方式=18, 频点=395)
    # 抗混叠滤波器特性测试(通道='通道1', 窄带方式=38, 频点=395)

    抗混叠滤波器特性测试(窄带方式=38, 频点=332)
